<?php
class Equipo extends AppModel {

	var $name = 'Equipo';
	var $primaryKey = 'equipo';
	var $validate = array(
		'nombre' => array(
			'notEmpty' => array(	
				'rule' => 'notEmpty',
				'required' => true,
				'message' => 'El nombre del equipo no puede estar vacio')
			));
	
	
	//The Associations below have been created with all possible keys, those that are not needed can be removed
	var $belongsTo = array(
			'Torneo' => array('className' => 'Torneo',
								'foreignKey' => 'torneo_id',
								'conditions' => '',
								'fields' => '',
								'order' => ''
			),
			'Owner' => array('className' => 'User',
								'foreignKey' => 'user_id',
								'conditions' => '',
								'fields' => '',
								'order' => ''
			)
	);

	var $hasMany = array(
			'User' => array('className' => 'User',
								'foreignKey' => 'equipo_id',
								'dependent' => false,
								'conditions' => '',
								'fields' => '',
								'order' => '',
								'limit' => '',
								'offset' => '',
								'exclusive' => '',
								'finderQuery' => '',
								'counterQuery' => ''
			)
	);
/*	
	function tengoEquipo($userId){
		//print_r('hola');
		$MiEquipo=$this->User->find('first',array('conditions'=>array('User.user ='=> $userId)));
		//print_r($MiEquipo['User']['equipo_id']);
		if($MiEquipo['User']['equipo_id']){
			return 1;
		}else{
			return 0;
		}
	}*/
	
	function topFiveTeam()
	{
		$topFiveTeam=$this->find('all', array('fields'=>array('Equipo.puntos','Equipo.nombre'),'order'=>'Equipo.puntos DESC','limit'=>5));
		//print_r($topTeam);
		return $topFiveTeam;
	}
	
/*Funcion que me trae el equipo del usuario que es duenho del mismo*/	
	function equipoOwner($userId){
		$MiEquipo=$this->find('first',array('conditions'=>array('Equipo.user_id ='=> $userId, 'Equipo.estado >' => 0)));
		if($MiEquipo){
			return ($MiEquipo);
		}else{
			return 0;
		}
	}
	

	function nombresMiembros($equipoId){
		$nombresM = $this->User->find('all', array('conditions' => array('User.equipo_id =' => $equipoId )));
		$i=0;
		foreach ($nombresM as $name){
			$nombres[$i]=$name['User']['username'];
			$i=$i+1;
		}
		//print_r($nombres);
		return ($nombres);
	}
	
	function nombreRepetido($equipoNombre){
		$repetidos = $this->find('count', array('conditions' => array('Equipo.nombre =' => $equipoNombre)));
		return ($repetidos);
	}
	
/*Funcion que actualiza la cantidad de jugadores del Equipo Utilizado cuando un usuario se une o sale del equipo*/
	function updateCantUsuarios($userId, $tipo){
		$user=$this->User->findbyUser($userId);
		if($tipo==1){ //aumentar equipo
			$this->id = $user['Equipo']['equipo'];
			$this->saveField('cantjugadores',$user['Equipo']['cantjugadores']+1);//Partido completo y listo para jugar
		}else{ //disminuir cantidad de jugadores del equipo
			$this->id = $user['Equipo']['equipo'];
			$this->saveField('cantjugadores',$user['Equipo']['cantjugadores']-1);
		}
	}
	
/*Los integrantes del equipo $equipoId ya no pertenecen al equipo. Utilizado cuando el duenho sale del equipo*/	
	function eliminarIntegrantes($equipoId){
		$users=$this->User->find('all', array('conditions'=>array('User.equipo_id'=>$equipoId)));
		foreach ($users as $user){
			$this->User->id = $user['User']['user'];
			$this->User->saveField('equipo_id',null);
		}
	}

/*LLamada en la funcion estadisticaGeneral() del controlador equipos. Para realizar las consultas a la tabla equipos,
para obtener las estadisticas deseadas
	Parametros
$tipo: consulta deseada
	Retorna
Un arreglo con los equipos que satisfacen las condiciones de las consultas
*/
	function topPorcentajeWinners($tipo=1){
		if($tipo==1){
			return $this->find('all', array('conditions'=>array('Equipo.estado >'=>0),'order' => array('Equipo.puntos DESC'),'limit' => 30));
		}elseif($tipo==2){
			return $this->find('all', array('conditions'=>array('Equipo.estado >'=>0),'order' => array('Equipo.partidosjugados DESC'),'limit' => 30));
		}elseif($tipo==3){
			return $this->find('all', array('conditions'=>array('Equipo.estado >'=>0),'order' => array('Equipo.partidosganados DESC'),'limit' => 30 ));
		}elseif($tipo==4){
			return $this->find('all', array('conditions'=>array('Equipo.estado >'=>0),'order' => array('Equipo.partidosempatados DESC'),'limit' => 30 ));
		}
		elseif($tipo==5 || $tipo==6){
			$equipos=$this->find('all', array('conditions'=>array('Equipo.estado >'=>0)));
			foreach ($equipos as $equipo){
				if($tipo==5){ //partidos ganados/partidos jugados
					if($equipo['Equipo']['partidosjugados']>0){
						$this->id = $equipo['Equipo']['equipo']; 
						$this->saveField('aux',$equipo['Equipo']['partidosganados']/$equipo['Equipo']['partidosjugados']);
					}else{
						$this->id = $equipo['Equipo']['equipo']; 
						$this->saveField('aux',0);
					}
				}elseif($tipo==6){ //partidos perdidos/partidos jugados
					if($equipo['Equipo']['partidosjugados']>0){
						$this->id = $equipo['Equipo']['equipo']; 
						$this->saveField('aux',$equipo['Equipo']['partidosperdidos']/$equipo['Equipo']['partidosperdidos']);
					}else{
						$this->id = $equipo['Equipo']['equipo']; 
						$this->saveField('aux',0);
					}
				}
			}
			$equipos=$this->find('all', array('conditions'=>array('Equipo.estado >'=>0), 'order' => array('Equipo.aux DESC'),'limit' => 30));
			return $equipos;
		}elseif($tipo==7){
			return $this->find('all', array('conditions'=>array('Equipo.estado >'=>0),'order' => array('Equipo.fechacreacion ASC'),'limit' => 30 ));
		}
	}
	
	function misDatosEquipo($equipoId)
	{
		$misDatos=$this->find('first', array('conditions' => array('Equipo.equipo =' => $equipoId)));
		///print_r($nombreUser);
		return $misDatos;
		
	}

}
?>